Conventionally, messages are exchanged between devices. Moreover, a server may be used to facilitate the exchange of the messages. However, often times, the messages being exchanged can be received out of order. For example, if a first device sends three messages to a second device, the second device may receive the three messages in a random order. Also, for messages that are dropped, conventionally, the server will have to resend the dropped message along with resending other messages associated with the dropped message.